﻿2026-08-01T15:16:51.3482942Z Current runner version: '2.336.0'
2026-08-01T15:16:51.3516322Z ##[group]Runner Image Provisioner
2026-08-01T15:16:51.3517638Z Hosted Compute Agent
2026-08-01T15:16:51.3518543Z Version: 20260707.563
2026-08-01T15:16:51.3519495Z Commit: 02667638d2b423fbc733a8e32a88b44996a3ba6e
2026-08-01T15:16:51.3520576Z Build Date: 2026-07-07T19:33:50Z
2026-08-01T15:16:51.3521548Z Worker ID: {f03590d8-60c8-42fb-ab79-0b8b67ae4340}
2026-08-01T15:16:51.3522927Z Azure Region: westus2
2026-08-01T15:16:51.3523879Z ##[endgroup]
2026-08-01T15:16:51.3526424Z ##[group]Operating System
2026-08-01T15:16:51.3527465Z Ubuntu
2026-08-01T15:16:51.3528204Z 24.04.4
2026-08-01T15:16:51.3528960Z LTS
2026-08-01T15:16:51.3529769Z ##[endgroup]
2026-08-01T15:16:51.3530528Z ##[group]Runner Image
2026-08-01T15:16:51.3531467Z Image: ubuntu-24.04
2026-08-01T15:16:51.3532302Z Version: 20260720.247.2
2026-08-01T15:16:51.3534583Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20260720.247/images/ubuntu/Ubuntu2404-Readme.md
2026-08-01T15:16:51.3537014Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20260720.247
2026-08-01T15:16:51.3538519Z ##[endgroup]
2026-08-01T15:16:51.3540140Z ##[group]GITHUB_TOKEN Permissions
2026-08-01T15:16:51.3543036Z Contents: read
2026-08-01T15:16:51.3543911Z Metadata: read
2026-08-01T15:16:51.3544685Z ##[endgroup]
2026-08-01T15:16:51.3547648Z Secret source: Actions
2026-08-01T15:16:51.3549116Z Prepare workflow directory
2026-08-01T15:16:51.4266515Z Prepare all required actions
2026-08-01T15:16:51.4338628Z Getting action download info
2026-08-01T15:16:51.8530761Z Download action repository 'actions/checkout@v4' (SHA:11d5960a326750d5838078e36cf38b85af677262)
2026-08-01T15:16:52.1289938Z Download action repository 'actions/setup-python@v5' (SHA:a26af69be951a213d495a4c3e4e4022e16d87065)
2026-08-01T15:16:52.2787236Z Complete job name: Migration, contracts, quality and repository safety
2026-08-01T15:16:52.3726680Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
2026-08-01T15:16:52.3736147Z ##[group]Run actions/checkout@v4
2026-08-01T15:16:52.3736784Z with:
2026-08-01T15:16:52.3737158Z   fetch-depth: 0
2026-08-01T15:16:52.3737587Z   repository: Gamexgit/FinanceManager
2026-08-01T15:16:52.3741101Z   token: ***
2026-08-01T15:16:52.3741496Z   ssh-strict: true
2026-08-01T15:16:52.3741889Z   ssh-user: git
2026-08-01T15:16:52.3742292Z   persist-credentials: true
2026-08-01T15:16:52.3742923Z   clean: true
2026-08-01T15:16:52.3743379Z   sparse-checkout-cone-mode: true
2026-08-01T15:16:52.3743852Z   fetch-tags: false
2026-08-01T15:16:52.3744255Z   show-progress: true
2026-08-01T15:16:52.3744646Z   lfs: false
2026-08-01T15:16:52.3745068Z   submodules: false
2026-08-01T15:16:52.3745468Z   set-safe-directory: true
2026-08-01T15:16:52.3745916Z   allow-unsafe-pr-checkout: false
2026-08-01T15:16:52.3746613Z env:
2026-08-01T15:16:52.3746966Z   PYTHONPATH: src
2026-08-01T15:16:52.3747361Z   JARVIS_FINANCE_ENV: test
2026-08-01T15:16:52.3747996Z   JARVIS_FINANCE_DB_PATH: /tmp/financemanager-phase3-controls/finance.sqlite3
2026-08-01T15:16:52.3748845Z   JARVIS_FINANCE_RUNTIME_DIR: /tmp/financemanager-phase3-controls/runtime
2026-08-01T15:16:52.3749624Z   JARVIS_FINANCE_CI_ROOT: /tmp/financemanager-phase3-migration
2026-08-01T15:16:52.3750241Z   JARVIS_FINANCE_WRITE_MODE: disabled
2026-08-01T15:16:52.3750699Z ##[endgroup]
2026-08-01T15:16:52.5028055Z Syncing repository: Gamexgit/FinanceManager
2026-08-01T15:16:52.5045734Z ##[group]Getting Git version info
2026-08-01T15:16:52.5047084Z Working directory is '/home/runner/work/FinanceManager/FinanceManager'
2026-08-01T15:16:52.5048935Z [command]/usr/bin/git version
2026-08-01T15:16:52.5049814Z git version 2.54.0
2026-08-01T15:16:52.5052355Z ##[endgroup]
2026-08-01T15:16:52.5074987Z Temporarily overriding HOME='/home/runner/work/_temp/51412dd8-c6ed-4267-adf3-7ef3414ef38d' before making global git config changes
2026-08-01T15:16:52.5077470Z Adding repository directory to the temporary git global config as a safe directory
2026-08-01T15:16:52.5103887Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/FinanceManager/FinanceManager
2026-08-01T15:16:52.5153966Z Deleting the contents of '/home/runner/work/FinanceManager/FinanceManager'
2026-08-01T15:16:52.5156571Z ##[group]Initializing the repository
2026-08-01T15:16:52.5164052Z [command]/usr/bin/git init /home/runner/work/FinanceManager/FinanceManager
2026-08-01T15:16:52.5277145Z hint: Using 'master' as the name for the initial branch. This default branch name
2026-08-01T15:16:52.5293861Z hint: will change to "main" in Git 3.0. To configure the initial branch name
2026-08-01T15:16:52.5304564Z hint: to use in all of your new repositories, which will suppress this warning,
2026-08-01T15:16:52.5305546Z hint: call:
2026-08-01T15:16:52.5306135Z hint:
2026-08-01T15:16:52.5306951Z hint: 	git config --global init.defaultBranch <name>
2026-08-01T15:16:52.5309683Z hint:
2026-08-01T15:16:52.5378779Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
2026-08-01T15:16:52.5395304Z hint: 'development'. The just-created branch can be renamed via this command:
2026-08-01T15:16:52.5396869Z hint:
2026-08-01T15:16:52.5398069Z hint: 	git branch -m <name>
2026-08-01T15:16:52.5399102Z hint:
2026-08-01T15:16:52.5400576Z hint: Disable this message with "git config set advice.defaultBranchName false"
2026-08-01T15:16:52.5402485Z Initialized empty Git repository in /home/runner/work/FinanceManager/FinanceManager/.git/
2026-08-01T15:16:52.5406869Z [command]/usr/bin/git remote add origin https://github.com/Gamexgit/FinanceManager
2026-08-01T15:16:52.5417324Z ##[endgroup]
2026-08-01T15:16:52.5419110Z ##[group]Disabling automatic garbage collection
2026-08-01T15:16:52.5420624Z [command]/usr/bin/git config --local gc.auto 0
2026-08-01T15:16:52.5424572Z ##[endgroup]
2026-08-01T15:16:52.5425881Z ##[group]Setting up auth
2026-08-01T15:16:52.5427505Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-08-01T15:16:52.5432326Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
2026-08-01T15:16:52.5909239Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-08-01T15:16:52.5943262Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
2026-08-01T15:16:52.6273070Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-08-01T15:16:52.6291378Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-08-01T15:16:52.6480810Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
2026-08-01T15:16:52.6514242Z ##[endgroup]
2026-08-01T15:16:52.6515996Z ##[group]Fetching the repository
2026-08-01T15:16:52.6525243Z [command]/usr/bin/git -c protocol.version=2 fetch --prune --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* +af0a9360ea424857788d2bd7c9e0d8d2f3369158:refs/remotes/pull/30/merge
2026-08-01T15:16:53.2883943Z From https://github.com/Gamexgit/FinanceManager
2026-08-01T15:16:53.2888603Z  * [new branch]      Sprint14/twr-xirr-performance-attribution -> origin/Sprint14/twr-xirr-performance-attribution
2026-08-01T15:16:53.2893607Z  * [new branch]      Sprint15/household-import-transfer-reconciliation-v1 -> origin/Sprint15/household-import-transfer-reconciliation-v1
2026-08-01T15:16:53.2899284Z  * [new branch]      Sprint16/hotfix-openpyxl-runtime-dependency -> origin/Sprint16/hotfix-openpyxl-runtime-dependency
2026-08-01T15:16:53.2905506Z  * [new branch]      Sprint16/smart-household-inbox-real-data-onboarding-v2 -> origin/Sprint16/smart-household-inbox-real-data-onboarding-v2
2026-08-01T15:16:53.2911340Z  * [new branch]      feat/budget-analytics-data-explorer-v1   -> origin/feat/budget-analytics-data-explorer-v1
2026-08-01T15:16:53.2916855Z  * [new branch]      feat/budget-categories-duplicates-cleanup -> origin/feat/budget-categories-duplicates-cleanup
2026-08-01T15:16:53.2921450Z  * [new branch]      feat/budget-categories-ux-fix            -> origin/feat/budget-categories-ux-fix
2026-08-01T15:16:53.2934102Z  * [new branch]      feat/budget-import-production-v2         -> origin/feat/budget-import-production-v2
2026-08-01T15:16:53.2940024Z  * [new branch]      feat/budget-monthly-import-rule-learning-v1 -> origin/feat/budget-monthly-import-rule-learning-v1
2026-08-01T15:16:53.2945595Z  * [new branch]      feat/budget-phase-1-4                    -> origin/feat/budget-phase-1-4
2026-08-01T15:16:53.2950263Z  * [new branch]      feat/budget-planning-forecast-v1         -> origin/feat/budget-planning-forecast-v1
2026-08-01T15:16:53.2955630Z  * [new branch]      feat/budget-planning-usability-v2        -> origin/feat/budget-planning-usability-v2
2026-08-01T15:16:53.2961058Z  * [new branch]      feat/budget-review-bulk-assign-confirm   -> origin/feat/budget-review-bulk-assign-confirm
2026-08-01T15:16:53.2966515Z  * [new branch]      feat/budget-workflow-help-ux             -> origin/feat/budget-workflow-help-ux
2026-08-01T15:16:53.2971880Z  * [new branch]      feat/finance-command-center-monthly-close-v1 -> origin/feat/finance-command-center-monthly-close-v1
2026-08-01T15:16:53.2977558Z  * [new branch]      feat/fixed-costs-subscriptions-v1        -> origin/feat/fixed-costs-subscriptions-v1
2026-08-01T15:16:53.3000255Z  * [new branch]      feat/grocery-matching-review-learning-v2 -> origin/feat/grocery-matching-review-learning-v2
2026-08-01T15:16:53.3007681Z  * [new branch]      feat/grocery-product-price-providers-v1  -> origin/feat/grocery-product-price-providers-v1
2026-08-01T15:16:53.3023766Z  * [new branch]      feat/migros-product-savings-grocery-optimizer-v1 -> origin/feat/migros-product-savings-grocery-optimizer-v1
2026-08-01T15:16:53.3029431Z  * [new branch]      feat/mobile-nav-income-csv-final         -> origin/feat/mobile-nav-income-csv-final
2026-08-01T15:16:53.3034098Z  * [new branch]      feat/mobile-nav-income-hotfix-v2         -> origin/feat/mobile-nav-income-hotfix-v2
2026-08-01T15:16:53.3038922Z  * [new branch]      feat/mobile-nav-income-planning-v1       -> origin/feat/mobile-nav-income-planning-v1
2026-08-01T15:16:53.3048275Z  * [new branch]      fix/manual-entry-uat-flows               -> origin/fix/manual-entry-uat-flows
2026-08-01T15:16:53.3069621Z  * [new branch]      fix/sprint16.2-insurance-family-order    -> origin/fix/sprint16.2-insurance-family-order
2026-08-01T15:16:53.3076271Z  * [new branch]      hotfix/sprint13-global-portfolio-aggregation -> origin/hotfix/sprint13-global-portfolio-aggregation
2026-08-01T15:16:53.3103996Z  * [new branch]      hotfix/sprint8-kpi-overflow              -> origin/hotfix/sprint8-kpi-overflow
2026-08-01T15:16:53.3112174Z  * [new branch]      hotfix/sprint8-readonly-render           -> origin/hotfix/sprint8-readonly-render
2026-08-01T15:16:53.3117030Z  * [new branch]      integration/portfolio-phase3-to-main     -> origin/integration/portfolio-phase3-to-main
2026-08-01T15:16:53.3121948Z  * [new branch]      main                                     -> origin/main
2026-08-01T15:16:53.3125969Z  * [new branch]      sprint10/portfolio-go-live               -> origin/sprint10/portfolio-go-live
2026-08-01T15:16:53.3130516Z  * [new branch]      sprint11/portfolio-completeness-ux       -> origin/sprint11/portfolio-completeness-ux
2026-08-01T15:16:53.3135960Z  * [new branch]      sprint12/truewealth-verified-import      -> origin/sprint12/truewealth-verified-import
2026-08-01T15:16:53.3141209Z  * [new branch]      sprint13/postfinance-ledger-import       -> origin/sprint13/postfinance-ledger-import
2026-08-01T15:16:53.3147759Z  * [new branch]      sprint16.1/classification-coverage-import-readiness -> origin/sprint16.1/classification-coverage-import-readiness
2026-08-01T15:16:53.3154414Z  * [new branch]      sprint16.2/first-import-calibration-portal-flow -> origin/sprint16.2/first-import-calibration-portal-flow
2026-08-01T15:16:53.3161397Z  * [new branch]      sprint16.3/import-readiness-batched-decisions-performance -> origin/sprint16.3/import-readiness-batched-decisions-performance
2026-08-01T15:16:53.3167455Z  * [new branch]      sprint17a/data-truth                     -> origin/sprint17a/data-truth
2026-08-01T15:16:53.3171841Z  * [new branch]      sprint17b/equity-quote-refresh           -> origin/sprint17b/equity-quote-refresh
2026-08-01T15:16:53.3176922Z  * [new branch]      sprint17b/household-cockpit              -> origin/sprint17b/household-cockpit
2026-08-01T15:16:53.3182008Z  * [new branch]      sprint17c/data-truth-navigation-today-lite -> origin/sprint17c/data-truth-navigation-today-lite
2026-08-01T15:16:53.3187925Z  * [new branch]      sprint17d/annual-budget-recurring-semantics -> origin/sprint17d/annual-budget-recurring-semantics
2026-08-01T15:16:53.3193772Z  * [new branch]      sprint2/navigation-design-shell          -> origin/sprint2/navigation-design-shell
2026-08-01T15:16:53.3199045Z  * [new branch]      sprint3.1/reconciliation-semantic-hardening -> origin/sprint3.1/reconciliation-semantic-hardening
2026-08-01T15:16:53.3205479Z  * [new branch]      sprint3/reconciliation-snapshot-foundation -> origin/sprint3/reconciliation-snapshot-foundation
2026-08-01T15:16:53.3211282Z  * [new branch]      sprint4.1/portfolio-policy-contract-hardening -> origin/sprint4.1/portfolio-policy-contract-hardening
2026-08-01T15:16:53.3216986Z  * [new branch]      sprint4/portfolio-policy-foundation      -> origin/sprint4/portfolio-policy-foundation
2026-08-01T15:16:53.3222644Z  * [new branch]      sprint5/portfolio-performance-foundation -> origin/sprint5/portfolio-performance-foundation
2026-08-01T15:16:53.3228855Z  * [new branch]      sprint6/portfolio-data-ingestion-reconciliation -> origin/sprint6/portfolio-data-ingestion-reconciliation
2026-08-01T15:16:53.3234464Z  * [new branch]      sprint7/postfinance-portfolio-source     -> origin/sprint7/postfinance-portfolio-source
2026-08-01T15:16:53.3239394Z  * [new branch]      sprint8/market-fx-benchmark-risk         -> origin/sprint8/market-fx-benchmark-risk
2026-08-01T15:16:53.3244073Z  * [new branch]      sprint9/portfolio-basis-policy           -> origin/sprint9/portfolio-basis-policy
2026-08-01T15:16:53.3247704Z  * [new tag]         v0.3.0                                   -> v0.3.0
2026-08-01T15:16:53.3250420Z  * [new tag]         v0.3.1                                   -> v0.3.1
2026-08-01T15:16:53.3253012Z  * [new tag]         v0.3.2                                   -> v0.3.2
2026-08-01T15:16:53.3255928Z  * [new ref]         af0a9360ea424857788d2bd7c9e0d8d2f3369158 -> pull/30/merge
2026-08-01T15:16:53.3261760Z ##[endgroup]
2026-08-01T15:16:53.3264463Z ##[group]Determining the checkout info
2026-08-01T15:16:53.3267179Z ##[endgroup]
2026-08-01T15:16:53.3268847Z [command]/usr/bin/git sparse-checkout disable
2026-08-01T15:16:53.3273617Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
2026-08-01T15:16:53.3279811Z ##[group]Checking out the ref
2026-08-01T15:16:53.3282599Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/30/merge
2026-08-01T15:16:53.3663033Z Note: switching to 'refs/remotes/pull/30/merge'.
2026-08-01T15:16:53.3673650Z 
2026-08-01T15:16:53.3675515Z You are in 'detached HEAD' state. You can look around, make experimental
2026-08-01T15:16:53.3678914Z changes and commit them, and you can discard any commits you make in this
2026-08-01T15:16:53.3682301Z state without impacting any branches by switching back to a branch.
2026-08-01T15:16:53.3684469Z 
2026-08-01T15:16:53.3685674Z If you want to create a new branch to retain commits you create, you may
2026-08-01T15:16:53.3689067Z do so (now or later) by using -c with the switch command. Example:
2026-08-01T15:16:53.3690914Z 
2026-08-01T15:16:53.3691697Z   git switch -c <new-branch-name>
2026-08-01T15:16:53.3693098Z 
2026-08-01T15:16:53.3693821Z Or undo this operation with:
2026-08-01T15:16:53.3696088Z 
2026-08-01T15:16:53.3698820Z   git switch -
2026-08-01T15:16:53.3699875Z 
2026-08-01T15:16:53.3701244Z Turn off this advice by setting config variable advice.detachedHead to false
2026-08-01T15:16:53.3703886Z 
2026-08-01T15:16:53.3706253Z HEAD is now at af0a936 Merge fc0161f09ad6d4bc00753313c10741e59c02873e into eeb1806e76783277c41dd5a8dbe7b73ccf844f12
2026-08-01T15:16:53.3712978Z ##[endgroup]
2026-08-01T15:16:53.3726797Z [command]/usr/bin/git log -1 --format=%H
2026-08-01T15:16:53.3752339Z af0a9360ea424857788d2bd7c9e0d8d2f3369158
2026-08-01T15:16:53.4154920Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
2026-08-01T15:16:53.4163660Z ##[group]Run actions/setup-python@v5
2026-08-01T15:16:53.4165246Z with:
2026-08-01T15:16:53.4166527Z   python-version: 3.11
2026-08-01T15:16:53.4167962Z   cache: pip
2026-08-01T15:16:53.4169317Z   cache-dependency-path: requirements-ci.txt
2026-08-01T15:16:53.4171172Z   check-latest: false
2026-08-01T15:16:53.4186263Z   token: ***
2026-08-01T15:16:53.4187663Z   update-environment: true
2026-08-01T15:16:53.4189247Z   allow-prereleases: false
2026-08-01T15:16:53.4190724Z   freethreaded: false
2026-08-01T15:16:53.4191995Z env:
2026-08-01T15:16:53.4193413Z   PYTHONPATH: src
2026-08-01T15:16:53.4194790Z   JARVIS_FINANCE_ENV: test
2026-08-01T15:16:53.4197121Z   JARVIS_FINANCE_DB_PATH: /tmp/financemanager-phase3-controls/finance.sqlite3
2026-08-01T15:16:53.4200222Z   JARVIS_FINANCE_RUNTIME_DIR: /tmp/financemanager-phase3-controls/runtime
2026-08-01T15:16:53.4203338Z   JARVIS_FINANCE_CI_ROOT: /tmp/financemanager-phase3-migration
2026-08-01T15:16:53.4205588Z   JARVIS_FINANCE_WRITE_MODE: disabled
2026-08-01T15:16:53.4207119Z ##[endgroup]
2026-08-01T15:16:53.5811903Z ##[group]Installed versions
2026-08-01T15:16:53.5881177Z (node:2020) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
2026-08-01T15:16:53.5886929Z (Use `node --trace-deprecation ...` to show where the warning was created)
2026-08-01T15:16:53.5889466Z Successfully set up CPython (3.11.15)
2026-08-01T15:16:53.5892682Z ##[endgroup]
2026-08-01T15:16:53.6801370Z [command]/opt/hostedtoolcache/Python/3.11.15/x64/bin/pip cache dir
2026-08-01T15:16:54.9525954Z /home/runner/.cache/pip
2026-08-01T15:16:55.2533668Z pip cache is not found
2026-08-01T15:16:55.2641006Z ##[group]Run python -m pip install -e . -r requirements-ci.txt
2026-08-01T15:16:55.2641679Z [36;1mpython -m pip install -e . -r requirements-ci.txt[0m
2026-08-01T15:16:55.2674910Z shell: /usr/bin/bash -e {0}
2026-08-01T15:16:55.2675248Z env:
2026-08-01T15:16:55.2675500Z   PYTHONPATH: src
2026-08-01T15:16:55.2675768Z   JARVIS_FINANCE_ENV: test
2026-08-01T15:16:55.2676182Z   JARVIS_FINANCE_DB_PATH: /tmp/financemanager-phase3-controls/finance.sqlite3
2026-08-01T15:16:55.2676724Z   JARVIS_FINANCE_RUNTIME_DIR: /tmp/financemanager-phase3-controls/runtime
2026-08-01T15:16:55.2677217Z   JARVIS_FINANCE_CI_ROOT: /tmp/financemanager-phase3-migration
2026-08-01T15:16:55.2677615Z   JARVIS_FINANCE_WRITE_MODE: disabled
2026-08-01T15:16:55.2677979Z   pythonLocation: /opt/hostedtoolcache/Python/3.11.15/x64
2026-08-01T15:16:55.2678451Z   PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.15/x64/lib/pkgconfig
2026-08-01T15:16:55.2678910Z   Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.15/x64
2026-08-01T15:16:55.2679386Z   Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.15/x64
2026-08-01T15:16:55.2679801Z   Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.15/x64
2026-08-01T15:16:55.2680662Z   LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.15/x64/lib
2026-08-01T15:16:55.2681109Z ##[endgroup]
2026-08-01T15:16:56.5799583Z Obtaining file:///home/runner/work/FinanceManager/FinanceManager
2026-08-01T15:16:56.5815539Z   Installing build dependencies: started
2026-08-01T15:16:57.4582168Z   Installing build dependencies: finished with status 'done'
2026-08-01T15:16:57.4588485Z   Checking if build backend supports build_editable: started
2026-08-01T15:16:57.7448817Z   Checking if build backend supports build_editable: finished with status 'done'
2026-08-01T15:16:57.7474125Z   Getting requirements to build editable: started
2026-08-01T15:16:58.0183983Z   Getting requirements to build editable: finished with status 'done'
2026-08-01T15:16:58.0197837Z   Preparing editable metadata (pyproject.toml): started
2026-08-01T15:16:58.1820414Z   Preparing editable metadata (pyproject.toml): finished with status 'done'
2026-08-01T15:16:58.2981749Z Collecting fastapi==0.136.1 (from -r requirements-ci.txt (line 1))
2026-08-01T15:16:58.3594442Z   Downloading fastapi-0.136.1-py3-none-any.whl.metadata (28 kB)
2026-08-01T15:16:58.3889959Z Collecting httpx==0.28.1 (from -r requirements-ci.txt (line 2))
2026-08-01T15:16:58.3969710Z   Downloading httpx-0.28.1-py3-none-any.whl.metadata (7.1 kB)
2026-08-01T15:16:58.4134541Z Collecting Jinja2==3.1.6 (from -r requirements-ci.txt (line 3))
2026-08-01T15:16:58.4205326Z   Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB)
2026-08-01T15:16:58.4364762Z Collecting openpyxl==3.1.5 (from -r requirements-ci.txt (line 4))
2026-08-01T15:16:58.4433613Z   Downloading openpyxl-3.1.5-py2.py3-none-any.whl.metadata (2.5 kB)
2026-08-01T15:16:58.5501577Z Collecting pandas==3.0.3 (from -r requirements-ci.txt (line 5))
2026-08-01T15:16:58.5577044Z   Downloading pandas-3.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (79 kB)
2026-08-01T15:16:58.6241070Z Collecting plotly==6.7.0 (from -r requirements-ci.txt (line 6))
2026-08-01T15:16:58.6333403Z   Downloading plotly-6.7.0-py3-none-any.whl.metadata (8.6 kB)
2026-08-01T15:16:58.7270708Z Collecting pydantic==2.13.4 (from -r requirements-ci.txt (line 7))
2026-08-01T15:16:58.7341057Z   Downloading pydantic-2.13.4-py3-none-any.whl.metadata (109 kB)
2026-08-01T15:16:58.7624046Z Collecting pypdf==6.14.2 (from -r requirements-ci.txt (line 8))
2026-08-01T15:16:58.7774401Z   Downloading pypdf-6.14.2-py3-none-any.whl.metadata (7.2 kB)
2026-08-01T15:16:58.8038440Z Collecting pytest==9.0.2 (from -r requirements-ci.txt (line 9))
2026-08-01T15:16:58.8115114Z   Downloading pytest-9.0.2-py3-none-any.whl.metadata (7.6 kB)
2026-08-01T15:16:59.1001334Z Collecting ruff==0.15.13 (from -r requirements-ci.txt (line 10))
2026-08-01T15:16:59.1089294Z   Downloading ruff-0.15.13-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (26 kB)
2026-08-01T15:16:59.1380034Z Collecting streamlit==1.57.0 (from -r requirements-ci.txt (line 11))
2026-08-01T15:16:59.1462470Z   Downloading streamlit-1.57.0-py3-none-any.whl.metadata (9.6 kB)
2026-08-01T15:16:59.1700190Z Collecting uvicorn==0.47.0 (from -r requirements-ci.txt (line 12))
2026-08-01T15:16:59.1771808Z   Downloading uvicorn-0.47.0-py3-none-any.whl.metadata (6.7 kB)
2026-08-01T15:16:59.1924204Z Collecting xlrd==2.0.2 (from -r requirements-ci.txt (line 13))
2026-08-01T15:16:59.1992942Z   Downloading xlrd-2.0.2-py2.py3-none-any.whl.metadata (3.5 kB)
2026-08-01T15:16:59.2267561Z Collecting yfinance==1.3.0 (from -r requirements-ci.txt (line 14))
2026-08-01T15:16:59.2343995Z   Downloading yfinance-1.3.0-py2.py3-none-any.whl.metadata (6.1 kB)
2026-08-01T15:16:59.2567586Z Collecting starlette>=0.46.0 (from fastapi==0.136.1->-r requirements-ci.txt (line 1))
2026-08-01T15:16:59.2636760Z   Downloading starlette-1.3.1-py3-none-any.whl.metadata (6.4 kB)
2026-08-01T15:16:59.2821298Z Collecting typing-extensions>=4.8.0 (from fastapi==0.136.1->-r requirements-ci.txt (line 1))
2026-08-01T15:16:59.2888493Z   Downloading typing_extensions-4.16.0-py3-none-any.whl.metadata (3.3 kB)
2026-08-01T15:16:59.3056922Z Collecting typing-inspection>=0.4.2 (from fastapi==0.136.1->-r requirements-ci.txt (line 1))
2026-08-01T15:16:59.3103209Z   Downloading typing_inspection-0.4.2-py3-none-any.whl.metadata (2.6 kB)
2026-08-01T15:16:59.3237436Z Collecting annotated-doc>=0.0.2 (from fastapi==0.136.1->-r requirements-ci.txt (line 1))
2026-08-01T15:16:59.3405156Z   Downloading annotated_doc-0.0.5-py3-none-any.whl.metadata (6.5 kB)
2026-08-01T15:16:59.3603088Z Collecting anyio (from httpx==0.28.1->-r requirements-ci.txt (line 2))
2026-08-01T15:16:59.3677987Z   Downloading anyio-4.14.2-py3-none-any.whl.metadata (4.6 kB)
2026-08-01T15:16:59.3866927Z Collecting certifi (from httpx==0.28.1->-r requirements-ci.txt (line 2))
2026-08-01T15:16:59.3935316Z   Downloading certifi-2026.7.22-py3-none-any.whl.metadata (2.5 kB)
2026-08-01T15:16:59.4095223Z Collecting httpcore==1.* (from httpx==0.28.1->-r requirements-ci.txt (line 2))
2026-08-01T15:16:59.4164506Z   Downloading httpcore-1.0.9-py3-none-any.whl.metadata (21 kB)
2026-08-01T15:16:59.4323960Z Collecting idna (from httpx==0.28.1->-r requirements-ci.txt (line 2))
2026-08-01T15:16:59.4393428Z   Downloading idna-3.18-py3-none-any.whl.metadata (6.1 kB)
2026-08-01T15:16:59.4816119Z Collecting MarkupSafe>=2.0 (from Jinja2==3.1.6->-r requirements-ci.txt (line 3))
2026-08-01T15:16:59.4885506Z   Downloading markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB)
2026-08-01T15:16:59.5020161Z Collecting et-xmlfile (from openpyxl==3.1.5->-r requirements-ci.txt (line 4))
2026-08-01T15:16:59.5087316Z   Downloading et_xmlfile-2.0.0-py3-none-any.whl.metadata (2.7 kB)
2026-08-01T15:16:59.6814761Z Collecting numpy>=1.26.0 (from pandas==3.0.3->-r requirements-ci.txt (line 5))
2026-08-01T15:16:59.6944221Z   Downloading numpy-2.4.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (6.6 kB)
2026-08-01T15:16:59.7074015Z Collecting python-dateutil>=2.8.2 (from pandas==3.0.3->-r requirements-ci.txt (line 5))
2026-08-01T15:16:59.7142900Z   Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)
2026-08-01T15:16:59.7457854Z Collecting narwhals>=1.15.1 (from plotly==6.7.0->-r requirements-ci.txt (line 6))
2026-08-01T15:16:59.7535020Z   Downloading narwhals-2.24.0-py3-none-any.whl.metadata (15 kB)
2026-08-01T15:16:59.7719297Z Collecting packaging (from plotly==6.7.0->-r requirements-ci.txt (line 6))
2026-08-01T15:16:59.7786369Z   Downloading packaging-26.2-py3-none-any.whl.metadata (3.5 kB)
2026-08-01T15:16:59.7930325Z Collecting annotated-types>=0.6.0 (from pydantic==2.13.4->-r requirements-ci.txt (line 7))
2026-08-01T15:16:59.8003383Z   Downloading annotated_types-0.8.0-py3-none-any.whl.metadata (15 kB)
2026-08-01T15:17:00.3118814Z Collecting pydantic-core==2.46.4 (from pydantic==2.13.4->-r requirements-ci.txt (line 7))
2026-08-01T15:17:00.3191048Z   Downloading pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.6 kB)
2026-08-01T15:17:00.3341503Z Collecting iniconfig>=1.0.1 (from pytest==9.0.2->-r requirements-ci.txt (line 9))
2026-08-01T15:17:00.3409344Z   Downloading iniconfig-2.3.0-py3-none-any.whl.metadata (2.5 kB)
2026-08-01T15:17:00.3553919Z Collecting pluggy<2,>=1.5 (from pytest==9.0.2->-r requirements-ci.txt (line 9))
2026-08-01T15:17:00.3633792Z   Downloading pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB)
2026-08-01T15:17:00.3814015Z Collecting pygments>=2.7.2 (from pytest==9.0.2->-r requirements-ci.txt (line 9))
2026-08-01T15:17:00.3881192Z   Downloading pygments-2.20.0-py3-none-any.whl.metadata (2.5 kB)
2026-08-01T15:17:00.4074040Z Collecting altair!=5.4.0,!=5.4.1,<7,>=4.0 (from streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:00.4403723Z   Downloading altair-6.2.2-py3-none-any.whl.metadata (11 kB)
2026-08-01T15:17:00.4584043Z Collecting blinker<2,>=1.5.0 (from streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:00.4657405Z   Downloading blinker-1.9.0-py3-none-any.whl.metadata (1.6 kB)
2026-08-01T15:17:00.4821924Z Collecting cachetools<8,>=5.5 (from streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:00.4896493Z   Downloading cachetools-7.1.6-py3-none-any.whl.metadata (5.5 kB)
2026-08-01T15:17:00.5068989Z Collecting click<9,>=7.0 (from streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:00.5135810Z   Downloading click-8.4.2-py3-none-any.whl.metadata (2.6 kB)
2026-08-01T15:17:00.5336824Z Collecting gitpython!=3.1.19,<4,>=3.0.7 (from streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:00.5405334Z   Downloading gitpython-3.1.57-py3-none-any.whl.metadata (13 kB)
2026-08-01T15:17:00.6741949Z Collecting pillow<13,>=7.1.0 (from streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:00.6813324Z   Downloading pillow-12.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (9.1 kB)
2026-08-01T15:17:00.6991259Z Collecting pydeck<1,>=0.8.0b4 (from streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:00.7059432Z   Downloading pydeck-0.9.3-py2.py3-none-any.whl.metadata (4.2 kB)
2026-08-01T15:17:00.8209365Z Collecting protobuf<8,>=3.20 (from streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:00.8279482Z   Downloading protobuf-7.35.1-cp310-abi3-manylinux2014_x86_64.whl.metadata (595 bytes)
2026-08-01T15:17:00.8924245Z Collecting pyarrow>=7.0 (from streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:00.8993537Z   Downloading pyarrow-25.0.0-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (3.0 kB)
2026-08-01T15:17:00.9500724Z Collecting requests<3,>=2.27 (from streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:00.9569671Z   Downloading requests-2.34.2-py3-none-any.whl.metadata (4.8 kB)
2026-08-01T15:17:00.9734028Z Collecting tenacity<10,>=8.1.0 (from streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:00.9799073Z   Downloading tenacity-9.1.4-py3-none-any.whl.metadata (1.2 kB)
2026-08-01T15:17:00.9927969Z Collecting toml<2,>=0.10.1 (from streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:00.9995144Z   Downloading toml-0.10.2-py2.py3-none-any.whl.metadata (7.1 kB)
2026-08-01T15:17:01.0313947Z Collecting httptools>=0.6.3 (from streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:01.0380869Z   Downloading httptools-0.8.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (3.5 kB)
2026-08-01T15:17:01.0543174Z Collecting python-multipart>=0.0.10 (from streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:01.0611081Z   Downloading python_multipart-0.0.32-py3-none-any.whl.metadata (2.1 kB)
2026-08-01T15:17:01.1394226Z Collecting websockets>=12.0.0 (from streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:01.1463393Z   Downloading websockets-17.0.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (6.3 kB)
2026-08-01T15:17:01.1603832Z Collecting itsdangerous>=2.1.2 (from streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:01.1671390Z   Downloading itsdangerous-2.2.0-py3-none-any.whl.metadata (1.9 kB)
2026-08-01T15:17:01.2050294Z Collecting watchdog<7,>=2.1.5 (from streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:01.2120547Z   Downloading watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl.metadata (44 kB)
2026-08-01T15:17:01.2283805Z Collecting h11>=0.8 (from uvicorn==0.47.0->-r requirements-ci.txt (line 12))
2026-08-01T15:17:01.2353536Z   Downloading h11-0.16.0-py3-none-any.whl.metadata (8.3 kB)
2026-08-01T15:17:01.2534327Z Collecting multitasking>=0.0.7 (from yfinance==1.3.0->-r requirements-ci.txt (line 14))
2026-08-01T15:17:01.2606410Z   Downloading multitasking-0.0.13-py3-none-any.whl.metadata (16 kB)
2026-08-01T15:17:01.2795648Z Collecting platformdirs>=2.0.0 (from yfinance==1.3.0->-r requirements-ci.txt (line 14))
2026-08-01T15:17:01.2863758Z   Downloading platformdirs-4.11.0-py3-none-any.whl.metadata (5.5 kB)
2026-08-01T15:17:01.3164063Z Collecting pytz>=2022.5 (from yfinance==1.3.0->-r requirements-ci.txt (line 14))
2026-08-01T15:17:01.3235898Z   Downloading pytz-2026.3.post1-py2.py3-none-any.whl.metadata (22 kB)
2026-08-01T15:17:01.3593494Z Collecting frozendict>=2.3.4 (from yfinance==1.3.0->-r requirements-ci.txt (line 14))
2026-08-01T15:17:01.3663298Z   Downloading frozendict-2.4.7-py3-none-any.whl.metadata (23 kB)
2026-08-01T15:17:01.3877708Z Collecting peewee>=3.16.2 (from yfinance==1.3.0->-r requirements-ci.txt (line 14))
2026-08-01T15:17:01.3948726Z   Downloading peewee-4.3.0-py3-none-any.whl.metadata (10 kB)
2026-08-01T15:17:01.4124316Z Collecting beautifulsoup4>=4.11.1 (from yfinance==1.3.0->-r requirements-ci.txt (line 14))
2026-08-01T15:17:01.4197551Z   Downloading beautifulsoup4-4.15.0-py3-none-any.whl.metadata (3.8 kB)
2026-08-01T15:17:01.4688971Z Collecting curl_cffi>=0.15 (from yfinance==1.3.0->-r requirements-ci.txt (line 14))
2026-08-01T15:17:01.4772462Z   Downloading curl_cffi-0.16.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (17 kB)
2026-08-01T15:17:01.5110927Z Collecting jsonschema>=3.0 (from altair!=5.4.0,!=5.4.1,<7,>=4.0->streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:01.5177749Z   Downloading jsonschema-4.26.0-py3-none-any.whl.metadata (7.6 kB)
2026-08-01T15:17:01.5381025Z Collecting gitdb<5,>=4.0.1 (from gitpython!=3.1.19,<4,>=3.0.7->streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:01.5447731Z   Downloading gitdb-4.0.12-py3-none-any.whl.metadata (1.2 kB)
2026-08-01T15:17:01.5586245Z Collecting smmap<6,>=3.0.1 (from gitdb<5,>=4.0.1->gitpython!=3.1.19,<4,>=3.0.7->streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:01.5654392Z   Downloading smmap-5.0.3-py3-none-any.whl.metadata (4.6 kB)
2026-08-01T15:17:01.6516743Z Collecting charset_normalizer<4,>=2 (from requests<3,>=2.27->streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:01.6589112Z   Downloading charset_normalizer-3.4.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (41 kB)
2026-08-01T15:17:01.6837987Z Collecting urllib3<3,>=1.26 (from requests<3,>=2.27->streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:01.6906547Z   Downloading urllib3-2.7.0-py3-none-any.whl.metadata (6.9 kB)
2026-08-01T15:17:01.7587265Z Collecting soupsieve>=1.6.1 (from beautifulsoup4>=4.11.1->yfinance==1.3.0->-r requirements-ci.txt (line 14))
2026-08-01T15:17:01.7694786Z   Downloading soupsieve-2.9.1-py3-none-any.whl.metadata (4.6 kB)
2026-08-01T15:17:01.8515051Z Collecting cffi>=2.0.0 (from curl_cffi>=0.15->yfinance==1.3.0->-r requirements-ci.txt (line 14))
2026-08-01T15:17:01.8585082Z   Downloading cffi-2.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.5 kB)
2026-08-01T15:17:01.8740555Z Collecting pycparser (from cffi>=2.0.0->curl_cffi>=0.15->yfinance==1.3.0->-r requirements-ci.txt (line 14))
2026-08-01T15:17:01.8808847Z   Downloading pycparser-3.0-py3-none-any.whl.metadata (8.2 kB)
2026-08-01T15:17:01.8988707Z Collecting attrs>=22.2.0 (from jsonschema>=3.0->altair!=5.4.0,!=5.4.1,<7,>=4.0->streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:01.9057825Z   Downloading attrs-26.1.0-py3-none-any.whl.metadata (8.8 kB)
2026-08-01T15:17:01.9202112Z Collecting jsonschema-specifications>=2023.03.6 (from jsonschema>=3.0->altair!=5.4.0,!=5.4.1,<7,>=4.0->streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:01.9270264Z   Downloading jsonschema_specifications-2025.9.1-py3-none-any.whl.metadata (2.9 kB)
2026-08-01T15:17:01.9468667Z Collecting referencing>=0.28.4 (from jsonschema>=3.0->altair!=5.4.0,!=5.4.1,<7,>=4.0->streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:01.9542495Z   Downloading referencing-0.37.0-py3-none-any.whl.metadata (2.8 kB)
2026-08-01T15:17:02.1465112Z Collecting rpds-py>=0.25.0 (from jsonschema>=3.0->altair!=5.4.0,!=5.4.1,<7,>=4.0->streamlit==1.57.0->-r requirements-ci.txt (line 11))
2026-08-01T15:17:02.1535935Z   Downloading rpds_py-2026.6.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.1 kB)
2026-08-01T15:17:02.1752457Z Collecting six>=1.5 (from python-dateutil>=2.8.2->pandas==3.0.3->-r requirements-ci.txt (line 5))
2026-08-01T15:17:02.1820180Z   Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)
2026-08-01T15:17:02.2024653Z Downloading fastapi-0.136.1-py3-none-any.whl (117 kB)
2026-08-01T15:17:02.2121964Z Downloading httpx-0.28.1-py3-none-any.whl (73 kB)
2026-08-01T15:17:02.2210047Z Downloading jinja2-3.1.6-py3-none-any.whl (134 kB)
2026-08-01T15:17:02.2300117Z Downloading openpyxl-3.1.5-py2.py3-none-any.whl (250 kB)
2026-08-01T15:17:02.2437079Z Downloading pandas-3.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (11.3 MB)
2026-08-01T15:17:02.2996430Z    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.3/11.3 MB 212.1 MB/s  0:00:00
2026-08-01T15:17:02.3064894Z Downloading plotly-6.7.0-py3-none-any.whl (9.9 MB)
2026-08-01T15:17:02.3475001Z    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.9/9.9 MB 252.1 MB/s  0:00:00
2026-08-01T15:17:02.3553752Z Downloading pydantic-2.13.4-py3-none-any.whl (472 kB)
2026-08-01T15:17:02.3643862Z Downloading pypdf-6.14.2-py3-none-any.whl (349 kB)
2026-08-01T15:17:02.3730969Z Downloading pytest-9.0.2-py3-none-any.whl (374 kB)
2026-08-01T15:17:02.3821144Z Downloading ruff-0.15.13-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.4 MB)
2026-08-01T15:17:02.4273166Z    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.4/11.4 MB 264.8 MB/s  0:00:00
2026-08-01T15:17:02.4479736Z Downloading streamlit-1.57.0-py3-none-any.whl (9.2 MB)
2026-08-01T15:17:02.4939777Z    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.2/9.2 MB 212.4 MB/s  0:00:00
2026-08-01T15:17:02.4993673Z Downloading uvicorn-0.47.0-py3-none-any.whl (71 kB)
2026-08-01T15:17:02.5113690Z Downloading xlrd-2.0.2-py2.py3-none-any.whl (96 kB)
2026-08-01T15:17:02.5196572Z Downloading yfinance-1.3.0-py2.py3-none-any.whl (133 kB)
2026-08-01T15:17:02.5277532Z Downloading pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB)
2026-08-01T15:17:02.5350669Z    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 354.6 MB/s  0:00:00
2026-08-01T15:17:02.5417877Z Downloading altair-6.2.2-py3-none-any.whl (797 kB)
2026-08-01T15:17:02.5488146Z    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 797.6/797.6 kB 116.4 MB/s  0:00:00
2026-08-01T15:17:02.5556547Z Downloading blinker-1.9.0-py3-none-any.whl (8.5 kB)
2026-08-01T15:17:02.5637193Z Downloading cachetools-7.1.6-py3-none-any.whl (16 kB)
2026-08-01T15:17:02.5718650Z Downloading click-8.4.2-py3-none-any.whl (119 kB)
2026-08-01T15:17:02.5804607Z Downloading gitpython-3.1.57-py3-none-any.whl (217 kB)
2026-08-01T15:17:02.5890981Z Downloading gitdb-4.0.12-py3-none-any.whl (62 kB)
2026-08-01T15:17:02.5976221Z Downloading httpcore-1.0.9-py3-none-any.whl (78 kB)
2026-08-01T15:17:02.6062222Z Downloading numpy-2.4.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.9 MB)
2026-08-01T15:17:02.6481056Z    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 16.9/16.9 MB 421.9 MB/s  0:00:00
2026-08-01T15:17:02.6553377Z Downloading pillow-12.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (6.9 MB)
2026-08-01T15:17:02.6734000Z    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.9/6.9 MB 418.4 MB/s  0:00:00
2026-08-01T15:17:02.6804375Z Downloading pluggy-1.6.0-py3-none-any.whl (20 kB)
2026-08-01T15:17:02.6889166Z Downloading protobuf-7.35.1-cp310-abi3-manylinux2014_x86_64.whl (327 kB)
2026-08-01T15:17:02.6991711Z Downloading pydeck-0.9.3-py2.py3-none-any.whl (11.4 MB)
2026-08-01T15:17:02.7547188Z    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.4/11.4 MB 213.8 MB/s  0:00:00
2026-08-01T15:17:02.7679452Z Downloading requests-2.34.2-py3-none-any.whl (73 kB)
2026-08-01T15:17:02.7768460Z Downloading charset_normalizer-3.4.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (221 kB)
2026-08-01T15:17:02.7856803Z Downloading idna-3.18-py3-none-any.whl (65 kB)
2026-08-01T15:17:02.7940118Z Downloading smmap-5.0.3-py3-none-any.whl (24 kB)
2026-08-01T15:17:02.8021500Z Downloading tenacity-9.1.4-py3-none-any.whl (28 kB)
2026-08-01T15:17:02.8104842Z Downloading toml-0.10.2-py2.py3-none-any.whl (16 kB)
2026-08-01T15:17:02.8186023Z Downloading typing_extensions-4.16.0-py3-none-any.whl (45 kB)
2026-08-01T15:17:02.8269067Z Downloading urllib3-2.7.0-py3-none-any.whl (131 kB)
2026-08-01T15:17:02.8354306Z Downloading watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl (79 kB)
2026-08-01T15:17:02.8439940Z Downloading annotated_doc-0.0.5-py3-none-any.whl (5.3 kB)
2026-08-01T15:17:02.8520121Z Downloading annotated_types-0.8.0-py3-none-any.whl (13 kB)
2026-08-01T15:17:02.8604058Z Downloading anyio-4.14.2-py3-none-any.whl (125 kB)
2026-08-01T15:17:02.8688780Z Downloading beautifulsoup4-4.15.0-py3-none-any.whl (109 kB)
2026-08-01T15:17:02.8773512Z Downloading certifi-2026.7.22-py3-none-any.whl (136 kB)
2026-08-01T15:17:02.8859219Z Downloading curl_cffi-0.16.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (13.5 MB)
2026-08-01T15:17:02.9195631Z    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.5/13.5 MB 421.1 MB/s  0:00:00
2026-08-01T15:17:02.9270736Z Downloading cffi-2.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (217 kB)
2026-08-01T15:17:02.9359462Z Downloading frozendict-2.4.7-py3-none-any.whl (16 kB)
2026-08-01T15:17:02.9443661Z Downloading h11-0.16.0-py3-none-any.whl (37 kB)
2026-08-01T15:17:02.9530021Z Downloading httptools-0.8.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (464 kB)
2026-08-01T15:17:02.9632184Z Downloading iniconfig-2.3.0-py3-none-any.whl (7.5 kB)
2026-08-01T15:17:02.9717243Z Downloading itsdangerous-2.2.0-py3-none-any.whl (16 kB)
2026-08-01T15:17:02.9801409Z Downloading jsonschema-4.26.0-py3-none-any.whl (90 kB)
2026-08-01T15:17:02.9886735Z Downloading attrs-26.1.0-py3-none-any.whl (67 kB)
2026-08-01T15:17:02.9982028Z Downloading jsonschema_specifications-2025.9.1-py3-none-any.whl (18 kB)
2026-08-01T15:17:03.0066073Z Downloading markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB)
2026-08-01T15:17:03.0147845Z Downloading multitasking-0.0.13-py3-none-any.whl (16 kB)
2026-08-01T15:17:03.0236780Z Downloading narwhals-2.24.0-py3-none-any.whl (461 kB)
2026-08-01T15:17:03.0327531Z Downloading packaging-26.2-py3-none-any.whl (100 kB)
2026-08-01T15:17:03.0412590Z Downloading peewee-4.3.0-py3-none-any.whl (179 kB)
2026-08-01T15:17:03.0497747Z Downloading platformdirs-4.11.0-py3-none-any.whl (23 kB)
2026-08-01T15:17:03.0581162Z Downloading pyarrow-25.0.0-cp311-cp311-manylinux_2_28_x86_64.whl (50.1 MB)
2026-08-01T15:17:03.1867863Z    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 50.1/50.1 MB 395.3 MB/s  0:00:00
2026-08-01T15:17:03.1939692Z Downloading pygments-2.20.0-py3-none-any.whl (1.2 MB)
2026-08-01T15:17:03.2000907Z    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 256.1 MB/s  0:00:00
2026-08-01T15:17:03.2070300Z Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)
2026-08-01T15:17:03.2155962Z Downloading python_multipart-0.0.32-py3-none-any.whl (30 kB)
2026-08-01T15:17:03.2239156Z Downloading pytz-2026.3.post1-py2.py3-none-any.whl (508 kB)
2026-08-01T15:17:03.2338943Z Downloading referencing-0.37.0-py3-none-any.whl (26 kB)
2026-08-01T15:17:03.2416953Z Downloading rpds_py-2026.6.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (371 kB)
2026-08-01T15:17:03.2505568Z Downloading six-1.17.0-py2.py3-none-any.whl (11 kB)
2026-08-01T15:17:03.2586842Z Downloading soupsieve-2.9.1-py3-none-any.whl (37 kB)
2026-08-01T15:17:03.2669374Z Downloading starlette-1.3.1-py3-none-any.whl (73 kB)
2026-08-01T15:17:03.2755549Z Downloading typing_inspection-0.4.2-py3-none-any.whl (14 kB)
2026-08-01T15:17:03.2840668Z Downloading websockets-17.0.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (219 kB)
2026-08-01T15:17:03.2928671Z Downloading et_xmlfile-2.0.0-py3-none-any.whl (18 kB)
2026-08-01T15:17:03.3013371Z Downloading pycparser-3.0-py3-none-any.whl (48 kB)
2026-08-01T15:17:03.5424040Z Building wheels for collected packages: jarvis-finance
2026-08-01T15:17:03.5432319Z   Building editable for jarvis-finance (pyproject.toml): started
2026-08-01T15:17:03.7288143Z   Building editable for jarvis-finance (pyproject.toml): finished with status 'done'
2026-08-01T15:17:03.7293975Z   Created wheel for jarvis-finance: filename=jarvis_finance-0.1.0-0.editable-py3-none-any.whl size=1509 sha256=c0bcc41a18e28119e32b1ba71bbf3f64ad8ff2d9ea13d796a63c7b5c3f8ff8da
2026-08-01T15:17:03.7295919Z   Stored in directory: /tmp/pip-ephem-wheel-cache-68ij8vpp/wheels/ad/81/a6/5383a3c32505f4e59976cc011a336e07c6284dcaf35f5a7ea5
2026-08-01T15:17:03.7309046Z Successfully built jarvis-finance
2026-08-01T15:17:03.8489675Z Installing collected packages: pytz, multitasking, xlrd, websockets, watchdog, urllib3, typing-extensions, toml, tenacity, soupsieve, smmap, six, ruff, rpds-py, python-multipart, pypdf, pygments, pycparser, pyarrow, protobuf, pluggy, platformdirs, pillow, peewee, packaging, numpy, narwhals, MarkupSafe, itsdangerous, iniconfig, idna, httptools, h11, frozendict, et-xmlfile, click, charset_normalizer, certifi, cachetools, blinker, attrs, annotated-types, annotated-doc, uvicorn, typing-inspection, requests, referencing, python-dateutil, pytest, pydantic-core, plotly, openpyxl, Jinja2, httpcore, gitdb, cffi, beautifulsoup4, anyio, starlette, pydeck, pydantic, pandas, jsonschema-specifications, jarvis-finance, httpx, gitpython, curl_cffi, yfinance, jsonschema, fastapi, altair, streamlit
2026-08-01T15:17:16.7423218Z 
2026-08-01T15:17:16.7459644Z Successfully installed Jinja2-3.1.6 MarkupSafe-3.0.3 altair-6.2.2 annotated-doc-0.0.5 annotated-types-0.8.0 anyio-4.14.2 attrs-26.1.0 beautifulsoup4-4.15.0 blinker-1.9.0 cachetools-7.1.6 certifi-2026.7.22 cffi-2.1.0 charset_normalizer-3.4.9 click-8.4.2 curl_cffi-0.16.0 et-xmlfile-2.0.0 fastapi-0.136.1 frozendict-2.4.7 gitdb-4.0.12 gitpython-3.1.57 h11-0.16.0 httpcore-1.0.9 httptools-0.8.0 httpx-0.28.1 idna-3.18 iniconfig-2.3.0 itsdangerous-2.2.0 jarvis-finance-0.1.0 jsonschema-4.26.0 jsonschema-specifications-2025.9.1 multitasking-0.0.13 narwhals-2.24.0 numpy-2.4.6 openpyxl-3.1.5 packaging-26.2 pandas-3.0.3 peewee-4.3.0 pillow-12.3.0 platformdirs-4.11.0 plotly-6.7.0 pluggy-1.6.0 protobuf-7.35.1 pyarrow-25.0.0 pycparser-3.0 pydantic-2.13.4 pydantic-core-2.46.4 pydeck-0.9.3 pygments-2.20.0 pypdf-6.14.2 pytest-9.0.2 python-dateutil-2.9.0.post0 python-multipart-0.0.32 pytz-2026.3.post1 referencing-0.37.0 requests-2.34.2 rpds-py-2026.6.3 ruff-0.15.13 six-1.17.0 smmap-5.0.3 soupsieve-2.9.1 starlette-1.3.1 streamlit-1.57.0 tenacity-9.1.4 toml-0.10.2 typing-extensions-4.16.0 typing-inspection-0.4.2 urllib3-2.7.0 uvicorn-0.47.0 watchdog-6.0.0 websockets-17.0.1 xlrd-2.0.2 yfinance-1.3.0
2026-08-01T15:17:16.7466820Z 
2026-08-01T15:17:16.7473556Z [notice] A new release of pip is available: 26.1.2 -> 26.2
2026-08-01T15:17:16.7474235Z [notice] To update, run: pip install --upgrade pip
2026-08-01T15:17:16.9421517Z ##[group]Run git diff --check "origin/${GITHUB_BASE_REF:-main}...HEAD"
2026-08-01T15:17:16.9421990Z [36;1mgit diff --check "origin/${GITHUB_BASE_REF:-main}...HEAD"[0m
2026-08-01T15:17:16.9451073Z shell: /usr/bin/bash -e {0}
2026-08-01T15:17:16.9451352Z env:
2026-08-01T15:17:16.9451565Z   PYTHONPATH: src
2026-08-01T15:17:16.9451777Z   JARVIS_FINANCE_ENV: test
2026-08-01T15:17:16.9452143Z   JARVIS_FINANCE_DB_PATH: /tmp/financemanager-phase3-controls/finance.sqlite3
2026-08-01T15:17:16.9452642Z   JARVIS_FINANCE_RUNTIME_DIR: /tmp/financemanager-phase3-controls/runtime
2026-08-01T15:17:16.9453330Z   JARVIS_FINANCE_CI_ROOT: /tmp/financemanager-phase3-migration
2026-08-01T15:17:16.9453673Z   JARVIS_FINANCE_WRITE_MODE: disabled
2026-08-01T15:17:16.9453990Z   pythonLocation: /opt/hostedtoolcache/Python/3.11.15/x64
2026-08-01T15:17:16.9454400Z   PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.15/x64/lib/pkgconfig
2026-08-01T15:17:16.9454847Z   Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.15/x64
2026-08-01T15:17:16.9455207Z   Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.15/x64
2026-08-01T15:17:16.9455567Z   Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.15/x64
2026-08-01T15:17:16.9455932Z   LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.15/x64/lib
2026-08-01T15:17:16.9456381Z ##[endgroup]
2026-08-01T15:17:16.9703269Z ##[group]Run python -m jarvis_finance.cli.main git-safety-scan .
2026-08-01T15:17:16.9703955Z [36;1mpython -m jarvis_finance.cli.main git-safety-scan .[0m
2026-08-01T15:17:16.9735759Z shell: /usr/bin/bash -e {0}
2026-08-01T15:17:16.9736015Z env:
2026-08-01T15:17:16.9736213Z   PYTHONPATH: src
2026-08-01T15:17:16.9736425Z   JARVIS_FINANCE_ENV: test
2026-08-01T15:17:16.9736787Z   JARVIS_FINANCE_DB_PATH: /tmp/financemanager-phase3-controls/finance.sqlite3
2026-08-01T15:17:16.9737277Z   JARVIS_FINANCE_RUNTIME_DIR: /tmp/financemanager-phase3-controls/runtime
2026-08-01T15:17:16.9737708Z   JARVIS_FINANCE_CI_ROOT: /tmp/financemanager-phase3-migration
2026-08-01T15:17:16.9738041Z   JARVIS_FINANCE_WRITE_MODE: disabled
2026-08-01T15:17:16.9738353Z   pythonLocation: /opt/hostedtoolcache/Python/3.11.15/x64
2026-08-01T15:17:16.9738786Z   PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.15/x64/lib/pkgconfig
2026-08-01T15:17:16.9739230Z   Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.15/x64
2026-08-01T15:17:16.9739593Z   Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.15/x64
2026-08-01T15:17:16.9739954Z   Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.15/x64
2026-08-01T15:17:16.9740315Z   LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.15/x64/lib
2026-08-01T15:17:16.9740617Z ##[endgroup]
2026-08-01T15:17:17.9988707Z GIT_SAFETY_OK
2026-08-01T15:17:18.0169487Z ##[group]Run python -m ruff check \
2026-08-01T15:17:18.0169819Z [36;1mpython -m ruff check \[0m
2026-08-01T15:17:18.0170099Z [36;1m  scripts/ci_portfolio_phase3_gate.py \[0m
2026-08-01T15:17:18.0170413Z [36;1m  src/jarvis_finance/api/main.py \[0m
2026-08-01T15:17:18.0170728Z [36;1m  src/jarvis_finance/api/routers/overview.py \[0m
2026-08-01T15:17:18.0171085Z [36;1m  src/jarvis_finance/api/schemas/portfolio_data.py \[0m
2026-08-01T15:17:18.0171477Z [36;1m  src/jarvis_finance/api/schemas/portfolio_performance.py \[0m
2026-08-01T15:17:18.0171884Z [36;1m  src/jarvis_finance/api/schemas/portfolio_policy.py \[0m
2026-08-01T15:17:18.0172278Z [36;1m  src/jarvis_finance/api/schemas/reconciliation.py \[0m
2026-08-01T15:17:18.0172611Z [36;1m  src/jarvis_finance/api/security.py \[0m
2026-08-01T15:17:18.0173210Z [36;1m  src/jarvis_finance/config/settings.py \[0m
2026-08-01T15:17:18.0173525Z [36;1m  src/jarvis_finance/ledger/cost_basis.py \[0m
2026-08-01T15:17:18.0173900Z [36;1m  src/jarvis_finance/ledger/performance.py \[0m
2026-08-01T15:17:18.0174220Z [36;1m  src/jarvis_finance/quality/freshness.py \[0m
2026-08-01T15:17:18.0174536Z [36;1m  src/jarvis_finance/quality/git_safety.py \[0m
2026-08-01T15:17:18.0174862Z [36;1m  src/jarvis_finance/services/portfolio_data.py \[0m
2026-08-01T15:17:18.0175230Z [36;1m  src/jarvis_finance/services/portfolio_performance.py \[0m
2026-08-01T15:17:18.0175597Z [36;1m  src/jarvis_finance/services/portfolio_policy.py \[0m
2026-08-01T15:17:18.0175974Z [36;1m  src/jarvis_finance/services/reconciliation_snapshot.py \[0m
2026-08-01T15:17:18.0176357Z [36;1m  src/jarvis_finance/services/transfer_pairing.py \[0m
2026-08-01T15:17:18.0176696Z [36;1m  src/jarvis_finance/storage/migrations.py \[0m
2026-08-01T15:17:18.0176987Z [36;1m  tests/conftest.py \[0m
2026-08-01T15:17:18.0177246Z [36;1m  tests/unit/test_api_write_security.py \[0m
2026-08-01T15:17:18.0177539Z [36;1m  tests/unit/test_git_safety.py \[0m
2026-08-01T15:17:18.0177890Z [36;1m  tests/unit/test_portfolio_data_ingestion_reconciliation.py \[0m
2026-08-01T15:17:18.0178304Z [36;1m  tests/unit/test_portfolio_performance_foundation.py \[0m
2026-08-01T15:17:18.0178667Z [36;1m  tests/unit/test_portfolio_policy_foundation.py \[0m
2026-08-01T15:17:18.0179035Z [36;1m  tests/unit/test_reconciliation_snapshot_foundation.py \[0m
2026-08-01T15:17:18.0179372Z [36;1m  tests/unit/test_settings.py \[0m
2026-08-01T15:17:18.0179661Z [36;1m  tests/unit/test_transfer_pairing_v2.py[0m
2026-08-01T15:17:18.0206455Z shell: /usr/bin/bash -e {0}
2026-08-01T15:17:18.0206715Z env:
2026-08-01T15:17:18.0207048Z   PYTHONPATH: src
2026-08-01T15:17:18.0207259Z   JARVIS_FINANCE_ENV: test
2026-08-01T15:17:18.0207624Z   JARVIS_FINANCE_DB_PATH: /tmp/financemanager-phase3-controls/finance.sqlite3
2026-08-01T15:17:18.0208109Z   JARVIS_FINANCE_RUNTIME_DIR: /tmp/financemanager-phase3-controls/runtime
2026-08-01T15:17:18.0208544Z   JARVIS_FINANCE_CI_ROOT: /tmp/financemanager-phase3-migration
2026-08-01T15:17:18.0208890Z   JARVIS_FINANCE_WRITE_MODE: disabled
2026-08-01T15:17:18.0209201Z   pythonLocation: /opt/hostedtoolcache/Python/3.11.15/x64
2026-08-01T15:17:18.0209601Z   PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.15/x64/lib/pkgconfig
2026-08-01T15:17:18.0210033Z   Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.15/x64
2026-08-01T15:17:18.0210392Z   Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.15/x64
2026-08-01T15:17:18.0210753Z   Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.15/x64
2026-08-01T15:17:18.0211112Z   LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.15/x64/lib
2026-08-01T15:17:18.0211419Z ##[endgroup]
2026-08-01T15:17:18.1278349Z All checks passed!
2026-08-01T15:17:18.1306439Z ##[group]Run python -m compileall -q src tests scripts/ci_portfolio_phase3_gate.py
2026-08-01T15:17:18.1306992Z [36;1mpython -m compileall -q src tests scripts/ci_portfolio_phase3_gate.py[0m
2026-08-01T15:17:18.1336262Z shell: /usr/bin/bash -e {0}
2026-08-01T15:17:18.1336664Z env:
2026-08-01T15:17:18.1336968Z   PYTHONPATH: src
2026-08-01T15:17:18.1337268Z   JARVIS_FINANCE_ENV: test
2026-08-01T15:17:18.1337843Z   JARVIS_FINANCE_DB_PATH: /tmp/financemanager-phase3-controls/finance.sqlite3
2026-08-01T15:17:18.1338685Z   JARVIS_FINANCE_RUNTIME_DIR: /tmp/financemanager-phase3-controls/runtime
2026-08-01T15:17:18.1339439Z   JARVIS_FINANCE_CI_ROOT: /tmp/financemanager-phase3-migration
2026-08-01T15:17:18.1340020Z   JARVIS_FINANCE_WRITE_MODE: disabled
2026-08-01T15:17:18.1340553Z   pythonLocation: /opt/hostedtoolcache/Python/3.11.15/x64
2026-08-01T15:17:18.1341189Z   PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.15/x64/lib/pkgconfig
2026-08-01T15:17:18.1341959Z   Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.15/x64
2026-08-01T15:17:18.1342603Z   Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.15/x64
2026-08-01T15:17:18.1353879Z   Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.15/x64
2026-08-01T15:17:18.1354645Z   LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.15/x64/lib
2026-08-01T15:17:18.1355035Z ##[endgroup]
2026-08-01T15:17:18.7710878Z ##[group]Run python scripts/ci_portfolio_phase3_gate.py
2026-08-01T15:17:18.7711281Z [36;1mpython scripts/ci_portfolio_phase3_gate.py[0m
2026-08-01T15:17:18.7737086Z shell: /usr/bin/bash -e {0}
2026-08-01T15:17:18.7737353Z env:
2026-08-01T15:17:18.7737550Z   PYTHONPATH: src
2026-08-01T15:17:18.7737757Z   JARVIS_FINANCE_ENV: test
2026-08-01T15:17:18.7738110Z   JARVIS_FINANCE_DB_PATH: /tmp/financemanager-phase3-controls/finance.sqlite3
2026-08-01T15:17:18.7738592Z   JARVIS_FINANCE_RUNTIME_DIR: /tmp/financemanager-phase3-controls/runtime
2026-08-01T15:17:18.7739046Z   JARVIS_FINANCE_CI_ROOT: /tmp/financemanager-phase3-migration
2026-08-01T15:17:18.7739377Z   JARVIS_FINANCE_WRITE_MODE: disabled
2026-08-01T15:17:18.7739687Z   pythonLocation: /opt/hostedtoolcache/Python/3.11.15/x64
2026-08-01T15:17:18.7740079Z   PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.15/x64/lib/pkgconfig
2026-08-01T15:17:18.7740475Z   Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.15/x64
2026-08-01T15:17:18.7740870Z   Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.15/x64
2026-08-01T15:17:18.7741231Z   Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.15/x64
2026-08-01T15:17:18.7741589Z   LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.15/x64/lib
2026-08-01T15:17:18.7741893Z ##[endgroup]
2026-08-01T15:17:20.1734608Z Traceback (most recent call last):
2026-08-01T15:17:20.1743256Z   File "/home/runner/work/FinanceManager/FinanceManager/scripts/ci_portfolio_phase3_gate.py", line 227, in <module>
2026-08-01T15:17:20.1744558Z     main()
2026-08-01T15:17:20.1745465Z   File "/home/runner/work/FinanceManager/FinanceManager/scripts/ci_portfolio_phase3_gate.py", line 147, in main
2026-08-01T15:17:20.1746810Z     assert get_schema_version(empty) == EXPECTED_SCHEMA
2026-08-01T15:17:20.1747393Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-08-01T15:17:20.1747877Z AssertionError
2026-08-01T15:17:20.1838240Z ##[error]Process completed with exit code 1.
2026-08-01T15:17:20.1976807Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
2026-08-01T15:17:20.1977940Z Post job cleanup.
2026-08-01T15:17:20.2864548Z [command]/usr/bin/git version
2026-08-01T15:17:20.2921787Z git version 2.54.0
2026-08-01T15:17:20.2995669Z Temporarily overriding HOME='/home/runner/work/_temp/862e1425-17f5-4432-a530-ae28caee8119' before making global git config changes
2026-08-01T15:17:20.3001321Z Adding repository directory to the temporary git global config as a safe directory
2026-08-01T15:17:20.3002948Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/FinanceManager/FinanceManager
2026-08-01T15:17:20.3047308Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-08-01T15:17:20.3334613Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
2026-08-01T15:17:20.3483972Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-08-01T15:17:20.3485892Z http.https://github.com/.extraheader
2026-08-01T15:17:20.3546902Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2026-08-01T15:17:20.3607520Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
2026-08-01T15:17:20.3996295Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-08-01T15:17:20.3997962Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-08-01T15:17:20.4383305Z Cleaning up orphan processes
2026-08-01T15:17:20.4625423Z ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-python@v5. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
